using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("Board")]
	public class Board : MonoBehaviour
	{
		[Attribute38("Board.CustomTraySettings")]
		public class CustomTraySettings : MonoClass
		{
			public BoardDdId m_Board => method_2<BoardDdId>("m_Board");

			public Color m_Tint => method_2<Color>("m_Tint");

			public CustomTraySettings(IntPtr address, string className)
				: base(address, className)
			{
			}

			public CustomTraySettings(IntPtr address)
				: this(address, "CustomTraySettings")
			{
			}
		}

		[Attribute38("Board.BoardSpecialEvents")]
		public class BoardSpecialEvents : MonoClass
		{
			public SpecialEventType EventType => method_2<SpecialEventType>("EventType");

			public string Prefab => method_4("Prefab");

			public Color AmbientColorOverride => method_2<Color>("AmbientColorOverride");

			public BoardSpecialEvents(IntPtr address, string className)
				: base(address, className)
			{
			}

			public BoardSpecialEvents(IntPtr address)
				: this(address, "BoardSpecialEvents")
			{
			}
		}

		public static string GOLDEN_HERO_TRAY_FRIENDLY => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "Board", "GOLDEN_HERO_TRAY_FRIENDLY");

		public static string GOLDEN_HERO_TRAY_OPPONENT => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "Board", "GOLDEN_HERO_TRAY_OPPONENT");

		public Color MULLIGAN_AMBIENT_LIGHT_COLOR => method_2<Color>("MULLIGAN_AMBIENT_LIGHT_COLOR");

		public static float MULLIGAN_LIGHT_INTENSITY => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "Board", "MULLIGAN_LIGHT_INTENSITY");

		public Color m_AmbientColor => method_2<Color>("m_AmbientColor");

		public float m_DirectionalLightIntensity => method_2<float>("m_DirectionalLightIntensity");

		public GameObject m_FriendlyHeroTray => method_3<GameObject>("m_FriendlyHeroTray");

		public GameObject m_OpponentHeroTray => method_3<GameObject>("m_OpponentHeroTray");

		public GameObject m_FriendlyHeroPhoneTray => method_3<GameObject>("m_FriendlyHeroPhoneTray");

		public GameObject m_OpponentHeroPhoneTray => method_3<GameObject>("m_OpponentHeroPhoneTray");

		public Transform m_BoneParent => method_3<Transform>("m_BoneParent");

		public GameObject m_SplitPlaySurface => method_3<GameObject>("m_SplitPlaySurface");

		public GameObject m_CombinedPlaySurface => method_3<GameObject>("m_CombinedPlaySurface");

		public Transform m_ColliderParent => method_3<Transform>("m_ColliderParent");

		public GameObject m_MouseClickDustEffect => method_3<GameObject>("m_MouseClickDustEffect");

		public Color m_ShadowColor => method_2<Color>("m_ShadowColor");

		public Color m_DeckColor => method_2<Color>("m_DeckColor");

		public Color m_EndTurnButtonColor => method_2<Color>("m_EndTurnButtonColor");

		public Color m_HistoryTileColor => method_2<Color>("m_HistoryTileColor");

		public Color m_GoldenHeroTrayColor => method_2<Color>("m_GoldenHeroTrayColor");

		public List<BoardSpecialEvents> m_SpecialEvents => method_3<Class271<BoardSpecialEvents>>("m_SpecialEvents")?.method_25();

		public MusicPlaylistType m_BoardMusic => method_2<MusicPlaylistType>("m_BoardMusic");

		public Texture m_GemManaPhoneTexture => method_3<Texture>("m_GemManaPhoneTexture");

		public bool m_raisedLights => method_2<bool>("m_raisedLights");

		public Spell m_FriendlyTraySpellEffect => method_3<Spell>("m_FriendlyTraySpellEffect");

		public Spell m_OpponentTraySpellEffect => method_3<Spell>("m_OpponentTraySpellEffect");

		public int m_boardDbId => method_2<int>("m_boardDbId");

		public Color m_TrayTint => method_2<Color>("m_TrayTint");

		public Board(IntPtr address, string className)
			: base(address, className)
		{
		}

		public Board(IntPtr address)
			: this(address, "Board")
		{
		}

		public static Board Get()
		{
			return MonoClass.smethod_15<Board>(TritonHs.MainAssemblyPath, "", "Board", "Get", Array.Empty<object>());
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public void OnDestroy()
		{
			method_8("OnDestroy");
		}

		public void Start()
		{
			method_8("Start");
		}

		public void SetBoardDbId(int id)
		{
			method_8("SetBoardDbId", id);
		}

		public void ResetAmbientColor()
		{
			method_8("ResetAmbientColor");
		}

		public void RaiseTheLights()
		{
			method_9("RaiseTheLights", new Class276.Enum20[0]);
		}

		public void RaiseTheLightsQuickly()
		{
			method_8("RaiseTheLightsQuickly");
		}

		public void RaiseTheLights(float speed)
		{
			method_9("RaiseTheLights", new Class276.Enum20[1] { Class276.Enum20.R4 }, speed);
		}

		public void SetMulliganLighting()
		{
			method_8("SetMulliganLighting");
		}

		public void DimTheLights()
		{
			method_9("DimTheLights", new Class276.Enum20[0]);
		}

		public void DimTheLights(float speed)
		{
			method_9("DimTheLights", new Class276.Enum20[1] { Class276.Enum20.R4 }, speed);
		}

		public Transform FindBone(string name)
		{
			return method_14<Transform>("FindBone", new object[1] { name });
		}

		public Collider FindCollider(string name)
		{
			return method_14<Collider>("FindCollider", new object[1] { name });
		}

		public GameObject GetMouseClickDustEffectPrefab()
		{
			return method_14<GameObject>("GetMouseClickDustEffectPrefab", Array.Empty<object>());
		}

		public void CombinedSurface()
		{
			method_8("CombinedSurface");
		}

		public void SplitSurface()
		{
			method_8("SplitSurface");
		}

		public Spell GetFriendlyTraySpell()
		{
			return method_14<Spell>("GetFriendlyTraySpell", Array.Empty<object>());
		}

		public Spell GetOpponentTraySpell()
		{
			return method_14<Spell>("GetOpponentTraySpell", Array.Empty<object>());
		}

		public void ShowFriendlyHeroTray(AssetReference assetRef, GameObject go, object callbackData)
		{
			method_8("ShowFriendlyHeroTray", assetRef, go, callbackData);
		}

		public void ShowOpponentHeroTray(AssetReference assetRef, GameObject go, object callbackData)
		{
			method_8("ShowOpponentHeroTray", assetRef, go, callbackData);
		}

		public void OnHeroSkinManaGemTextureLoaded(AssetReference assetRef, object asset, object callbackData)
		{
			method_8("OnHeroSkinManaGemTextureLoaded", assetRef, asset, callbackData);
		}

		public void OnHeroTrayTextureLoaded(AssetReference assetRef, object asset, object callbackData)
		{
			method_8("OnHeroTrayTextureLoaded", assetRef, asset, callbackData);
		}

		public void OnHeroPhoneTrayTextureLoaded(AssetReference assetRef, object asset, object callbackData)
		{
			method_8("OnHeroPhoneTrayTextureLoaded", assetRef, asset, callbackData);
		}

		public void OnHeroTrayEffectLoaded(AssetReference assetRef, GameObject go, object callbackData)
		{
			method_8("OnHeroTrayEffectLoaded", assetRef, go, callbackData);
		}

		public void LoadBoardSpecialEvent(BoardSpecialEvents boardSpecialEvent)
		{
			method_8("LoadBoardSpecialEvent", boardSpecialEvent);
		}
	}
}
